package com.tengju.user.domain.model.archive.resume;

import com.tengju.user.domain.model.user.UserId;
import com.tengju.user.domain.shared.Entity;
import com.tengju.user.domain.shared.JsonMap;
import lombok.Value;
import lombok.experimental.NonFinal;

import java.time.LocalDateTime;
import java.util.List;

@Value
public class Resume implements Entity<Resume> {

    /**
     * 简历ID
     */
    private ResumeId resumeId;

    /**
     * 用户ID
     */
    private UserId userId;

    /**
     * 签约品牌列表
     */
    private List<BrandId> brandIds;

    /**
     * 自媒体信息
     */
    private JsonMap<SelfMediaType> selfMedia;

    /**
     * 社群信息
     */
    private CommunityInfo community;

    /**
     * 公司信息
     */
    private CompanyInfo company;

    /**
     * 渠道经验说明
     */
    @NonFinal
    private String channelExperience;

    /**
     * 填写时间
     */
    private LocalDateTime createTime;

    @Override
    public boolean sameIdentityAs(Resume other) {
        return other != null && this.resumeId.sameValueAs(other.resumeId);
    }
}
